package com.christina.engine.execution;

import com.christina.engine.execution.model.ExecutionRequest;
import com.christina.engine.execution.model.ExecutionResult;

/**
 * 服务执行器接口
 * 定义服务执行的基本行为
 */
public interface ServiceExecutor {
    
    /**
     * 执行服务的核心方法
     * 
     * @param request 执行请求，包含服务类型、参数等信息
     * @return 执行结果，包含成功标志、结果数据等信息
     */
    ExecutionResult execute(ExecutionRequest request);
    
    /**
     * 检查执行器是否支持指定的服务类型
     * 
     * @param serviceType 服务类型
     * @return 如果支持返回true，否则返回false
     */
    boolean supports(String serviceType);
    
    /**
     * 获取执行器名称
     * 
     * @return 执行器名称
     */
    String getName();
    
    /**
     * 获取支持的服务类型列表
     * 
     * @return 支持的服务类型列表
     */
    String[] getSupportedServiceTypes();
    
    /**
     * 检查执行器是否已启用
     * 
     * @return 如果启用返回true，否则返回false
     */
    boolean isEnabled();
    
    /**
     * 获取执行器的优先级
     * 数值越小，优先级越高
     * 
     * @return 优先级
     */
    int getPriority();
}